home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / comms / other / dragondaemon / dfa / dragondial.dfa next >
Text File  |  1999-05-17  |  3KB  |  95 lines

  1. /*****************************************************/
  2. /* DragonDial.dfa                                    */
  3. /* Wählt die Telefonnummer des markierten Eintrags   */
  4. /* aus DFA über eine DataBox "Speed Dragon" an       */
  5. /* von Ralf Keber (rkeber@sparkasse.net)             */
  6. /* 18.04.99 -  Version 1.0                           */
  7. /*****************************************************/
  8.  
  9. /******* Eigene Einstellungen eintragen!!! **********************************************/
  10. port             = 0                     /* über welchen Port soll telefoniert werden?  */
  11.                                          /* 1,2,3 oder 0 = Port wird erfragt            */
  12. DragonDaemonPfad = "Tools:DragonTools/"  /* wo ist der DragonDaemon auf der Festplatte? */
  13. /****************************************************************************************/
  14.  
  15. CR               = '0A'X
  16. Tags             = "rt_reqpos=reqpos_centerscr rtez_flags=ezreqf_centertext rt_font=courier.font/13"
  17.  
  18. options results
  19.  
  20. /* Falls der DragonDaemon nicht läuft, wird er hier gestartet */
  21. if ~show(ports,'DragonDaemon') then do
  22.    Kommando= "RUN >NIL: "||DragonDaemonPfad||"DragonDaemon"
  23.    ADDRESS COMMAND Kommando
  24.    wait 1
  25. end
  26. /* ob er jetzt läuft wird später abgefragt, um ihm ein wenig Zeit zum starten zu geben */
  27.  
  28. if ~show(ports, 'DFA') then do
  29.    call rtezrequest("DFA muß erst laufen!","Okay",,Tags)
  30.    exit
  31. end
  32.  
  33. if ~show('L',"rexxreqtools.library") then addlib('rexxreqtools.library',0,-30,0)
  34.  
  35. address 'DFA' GETCURRENT stem p.
  36.  
  37. text   = p.address.1||" "||p.address.2||":"||CR
  38. phone  = p.address.10
  39.  
  40. if phone = "" then do
  41.    call rtezrequest("Ich kann keine Telefonnummer finden!","Okay",,Tags)
  42.    exit
  43. end
  44.  
  45. /* gibt es mehrere Telefonnummern getrennt durch '|'? */
  46. i=1
  47. l=0            /* längste Telefonnummer zur Formatierung */
  48. requtext=''    /* die Requesterbottons */
  49. do while phone~ = ''
  50.    parse var phone phone.i '|' phone
  51.    phone.i = STRIP(phone.i,"B"," ") /* Leerzeichen vorne/hinten entfernen   */
  52.    l=max(length(phone.i),l)         /* die längste Telefonnumer ist so lang */
  53.    requtext =requtext||i||"|"       /* Requesterbottons werden aufgebaut    */
  54.    i=i+1
  55. end
  56. Anzahl=i-1
  57.  
  58. phonetext=""      /* der Requestertext: Die Telefonnummern 1. xxx 2. yyy 3. zzz usw.   */
  59. do i=1 to Anzahl  /* die Nummern werden mit Leerzeichen auf die gleiche Länge gebracht */
  60.    phonetext=phonetext||i||". "||Center(phone.i,l)||CR
  61. end
  62.  
  63. if Anzahl=1 then do /* nur eine Nummer */
  64.    phonetext=phone.1||CR
  65.    requtext="ja|"
  66.    end
  67.  
  68. requtext=requtext||nein
  69.  
  70. if ~show(ports,'DragonDaemon') then do  /* Ist der DragonDaemon jetzt aktiv ?  */
  71.    wait 2                               /* Nicht! Dann warte noch ein Weilchen */
  72.    if ~show(ports,'DragonDaemon') then do
  73.       call rtezrequest("DragonDaemon ist noch nicht aktiv!","Okay",,Tags)
  74.       exit
  75.    end
  76. end
  77.  
  78. call rtezrequest(text||phonetext||"anrufen?", requtext,,Tags)
  79. i=result
  80. if i=0 then exit
  81.  
  82. phone.i  = COMPRESS(phone.i,' -/')      /* Leerzeichen, '-' und '/' entfernen */
  83.  
  84. Address "DragonDaemon"
  85. DD_DIALNUMBER phone.i port
  86.  
  87. /* gab es beim DragonDaemon einen Fehler? */
  88. if result="ERROR" then do
  89.     Info = "Nummer wurde nicht gewählt!"
  90.     call rtezrequest(Info,"Okay",,Tags)
  91.   end
  92.  
  93. exit
  94.  
  95.